package com.whales.shared.util;

import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;

/**
 * session Util
 * - Spring에서 제공하는 RequestContextHolder 를 이용하여
 * request 객체를 service까지 전달하지 않고 사용할 수 있게 합니다.
 */
public class SessionUtil {

	/**
	 * @메소드명 : getAttribute   					   
	 * @작성자 : sw775.park   
	 * @작성일 : 2012. 4. 20.
	 * @param name
	 * @return
	 * @throws Exception	
	 * @설명 :
	 * @수정이력 - 수정일,수정자,수정내용					   
	 *										   
	 */
	public static Object getAttribute(String name) throws Exception {
		return (Object)RequestContextHolder.getRequestAttributes().getAttribute(name, RequestAttributes.SCOPE_SESSION);
	}
	
	/**
	 * @메소드명 : setAttribute   					   
	 * @작성자 : sw775.park   
	 * @작성일 : 2012. 4. 20.
	 * @param name
	 * @param object
	 * @throws Exception	
	 * @설명 :
	 * @수정이력 - 수정일,수정자,수정내용					   
	 *										   
	 */
	public static void setAttribute(String name, Object object) throws Exception {
		RequestContextHolder.getRequestAttributes().setAttribute(name, object, RequestAttributes.SCOPE_SESSION);
	}
	
	/**
	 * @메소드명 : removeAttribute   					   
	 * @작성자 : sw775.park   
	 * @작성일 : 2012. 4. 20.
	 * @param name
	 * @throws Exception	
	 * @설명 :
	 * @수정이력 - 수정일,수정자,수정내용					   
	 *										   
	 */
	public static void removeAttribute(String name) throws Exception {
		RequestContextHolder.getRequestAttributes().removeAttribute(name, RequestAttributes.SCOPE_SESSION);
	}
	
	/**
	 * @메소드명 : getSessionId   					   
	 * @작성자 : sw775.park   
	 * @작성일 : 2012. 4. 20.
	 * @return
	 * @throws Exception	
	 * @설명 :
	 * @수정이력 - 수정일,수정자,수정내용					   
	 *										   
	 */
	public static String getSessionId() throws Exception  {
		return RequestContextHolder.getRequestAttributes().getSessionId();
	}	
}
